#ifndef LINKQUEUE_H
#define LINKQUEUE_H    
#include "Status.h"    
typedef int QElemType;
typedef struct QNode {
    QElemType data;
    struct QNode* next;
} QNode, * QueuePtr;
typedef struct {
    QueuePtr front;
    QueuePtr rear;
} Queue;
Status InitQueue(Queue* Q);
Status DestroyQueue(Queue* Q);
Status ClearQueue(Queue* Q);
Status QueueEmpty(Queue* Q);
int QueueLength(Queue* Q);
Status GetHead(Queue* Q, QElemType* e);
Status EnQueue(Queue* Q, QElemType e);
Status DeQueue(Queue* Q, QElemType* e);
Status QueueTraverse(Queue* Q, void(Visit)(QElemType));
#endif